package main

import "fmt"

type Point struct { // type 新类型
	x, y int
}

func test(x struct{ x, y int }) {
	fmt.Printf("%T %[1]v\n", x)
}

func main() {
	var t1 struct { // var 变量，类型是后面弥漫 struct {}, t1变量
		x, y int
	}
	var t2 struct{ x, y int }
	// var p1 p2 Point // 先定义 Point 类型，再实例化给了p1
	fmt.Printf("%T %[1]v\n", t1)
	fmt.Printf("%T %[1]v\n", t2)
	// fmt.Printf("%T %[1]v\n", p1)
	// fmt.Printf("%T %[1]v\n", p2)

	test(t1)
	test(t2)
	// test(p1)

}
